#pragma once
#include<vector>
#include<iostream>
#include<ctime>
////////////////////////debug//////////////////
void Printlog(){
    std::cout<<"我是打印日志的任务"<<std::endl;
}
void DownLoad(){
    std::cout<<"我是下载文件的任务"<<std::endl;
}
void Upload(){
    std::cout<<"我是上传文件的任务"<<std::endl;
}
void Delete(){
    std::cout<<"我是删除文件的任务"<<std::endl;
}
void Compress(){
    std::cout<<"我是压缩文件的任务"<<std::endl;
}
typedef void(*Task_t)();
class TaskMannager{
    public:
        TaskMannager(){
            srand(time(nullptr));
        }
        void Register(Task_t t){
            _tasks.push_back(t);
        }
        int Code(){
            return rand()%_tasks.size();
        }
        void Execute(int code){
            if(code>=0 && code<_tasks.size()){
                _tasks[code]();//函数指针调用
            }
        }
        ~TaskMannager(){}
    private:
        std::vector<Task_t> _tasks;
    
};